///////////////////////////////////////////////////////////////////////////
//																		 //
//	Author:		Michael Mozdzierz										 //
//	Date:		10/17/2014												 //
//	Purpose:	Define DEMO_APP, the entry point for the program		 //
//																		 //
///////////////////////////////////////////////////////////////////////////


#pragma once
using namespace std;

class Game;


class DEMO_APP
{
	HINSTANCE						application;
	WNDPROC							appWndProc;
	HWND							window;
	
#if 0 // save this for use in the lighting engine
	struct SEND_TO_VRAM
	{
		Matrix world;
		Matrix view;
		Matrix proj;
		Vector4 dir;
	} toShader;
	struct Light
	{
		Vector4 color;
		Vector3 position;
		float range;
	};

	struct TIME_BUFFER
	{
		XMFLOAT4 time;
	} time_buffer;
#endif

	
		
	POINT cursor_prev;

	unsigned long then = 0;
	unsigned long frames = 0;
	// the ammount of time that has elapsed since the start of the program
	long double elapsed = 0;

	static DEMO_APP* instance;
public:		
	/////////////////////////<Graphics>///////////////////////////////////////////////////


	DEMO_APP(HINSTANCE hinst, WNDPROC proc, LPWSTR exePath);
	bool Run();
	bool ShutDown();

	static DEMO_APP* GetInstance(void) { return instance; }
};
